<template>
    <slot />
</template>
<script setup lang="ts">
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";

onLaunch(() => {
  console.log("App Launch");
  uni.onTabBarMidButtonTap(() => {
    console.log("点击了中间按钮");
    scanCode();
  });

  if (typeof plus == "undefined") return;
  if (
    plus &&
    plus.screen &&
    typeof plus.screen.lockOrientation === "function"
  ) {
    try {
      plus.screen.lockOrientation("portrait-primary");
      console.log("屏幕方向已锁定为竖屏");
    } catch (e) {
      console.error("无法锁定屏幕方向:", e);
    }
  } else {
    console.log("当前环境不支持屏幕方向锁定");
  }
});
onShow(() => {
  console.log("App Show");
});
onHide(() => {
  console.log("App Hide");
});

const scanCode = () => {
  // 调用扫码功能
  uni.scanCode({
    onlyFromCamera: true, // 只支持相机扫码
    // scanType: ["qrCode"], // 只支持二维码
    success: function (res) {
      console.log("扫码结果：", res.result); // 扫码得到的内容
      console.log("二维码/条形码类型：", res.scanType); // 如 'QR_CODE'、'EAN_13' 等
      console.log("字符集：", res.charSet);
      const content = res.result;
      console.log("二维码内容:", content);
      // 判断内容类型
      if (content.startsWith("http://") || content.startsWith("https://")) {
        // 处理URL：跳转链接
        handleUrl(content);
      } else {
        // 其他文本内容
        handleText(content);
      }
    },
    fail: function (err) {
      console.log("扫码失败：", err);
    },
    complete: function () {
      console.log("扫码完成（无论成功失败都会执行）");
    },
  });
};

function handleUrl(url: string) {
  // 在当前应用内打开
  uni.navigateTo({
    url: `/pages/webview/webview?url=${encodeURIComponent(url)}`,
  });

  // 或在外部浏览器打开
  // uni.openURL({ url: url });
}

function handleText(text: string) {
  // 显示内容给用户
  uni.showModal({
    title: "扫码结果",
    content: text,
    showCancel: false,
  });

  // 或复制到剪贴板
  uni.setClipboardData({
    data: text,
    success: () => {
      uni.showToast({ title: "已复制到剪贴板", icon: "success" });
    },
  });
}
</script>

<style>
page {
  width: 100%;
  height: 100%;
  font-family: PingFang SC, PingFang SC;
  overflow-x: hidden;
  overflow-y: auto;
  transform: none !important;
}

/* 整屏背景类名，组件中最大盒子的类名 */
.big-bc {
  min-height: 100%;
  background-image: url("/static/images/home/home_bc.png");
  background-size: 100% 100%;
}
 

.container {
  padding: 20rpx 31rpx 0rpx 31rpx;
  /* #ifdef H5 */
  padding-top: 10rpx;
  /* #endif */
  /* min-height: 100%; */
  overflow-x: hidden;
}

/* 在 App.vue 或对应的页面样式中添加 */
.uni-tabbar .uni-tabbar__mid-btn {
  /* 确保按钮不会被点击事件影响显示 */
  pointer-events: auto !important;
}

.uni-tabbar__mid-btn-icon {
  /* 确保图标不会被隐藏 */
  opacity: 1 !important;
  visibility: visible !important;
}

/* 通用样式 */
.scroll-view {
  overflow: auto;
}

/* #ifdef H5 */
/* H5平台隐藏滚动条 */
/* 锁定页面为竖屏显示 */
html,
body {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  /* 防止横屏时出现滚动条 */
}

/* 横屏提示层 - 仅在横屏时显示 */
.rotate-tip {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vh;
  height: 100vw;
  background-color: #000;
  color: #fff;
  font-size: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: rotate(90deg) translate(0, -100%);
  transform-origin: 0 0;
  z-index: 9999;
  display: none;
  /* 默认隐藏 */
}

/* 隐藏全局滚动条 */
::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Opera */
}

/* 针对 IE 和 Edge */
html {
  -ms-overflow-style: none;
}

/* 针对 Firefox */
body {
  scrollbar-width: none;
}

/* #endif */

/* #ifdef APP-PLUS */
/* App平台隐藏滚动条 */
.scroll-view {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
/* #endif */
</style>
